Web servers deliver web pages to clients upon request. Typically, a user enters a domain name into a browser which is then communicated to a domain name server. The domain name server uses the domain name to look up an IP address that can be used to connect to the web server. The web server then delivers the content back to the browser for viewing by the user. In many cases, hypertext transfer protocol (HTTP), or a variant thereof, is used in the communication between the browser and the web server.
Web servers can include hardware and software for delivering the web pages or other content to the client. Unfortunately, web servers have limited resources and can only handle a limited number of concurrent connections. In order to expand the availability of the content, web servers are often grouped into farms of multiple servers having identical content. Since there are multiple servers having the same content, requests from clients can be load balanced among the servers. However, as the number of servers grows, a number of challenges and inefficiencies found in traditional maintenance techniques have been observed.